验证结果

很多建模论文中缺少模型结果验证、敏感性分析或对比分析的环节,这就导致建模环节不齐全,进而影响整个论文的档次。我们为什么需要验证模型结果呢?主要是证明模型的有效性。我将举例说明、敏感性分析等对比分析都放在“验证结果”部分,因为这几个环节都与确认模型可信度有关。

举例说明

我们拿一些有代表性的案例来说明模型的应用可以一定程度上验证模型。2020A题问题本身就要求参赛团队生成数据并说明应用(相当于是举例分析了)。感兴趣的同学可以参考文章《竞赛 赛题解析04 HiMCM 2020年A题之解释结果》。 这里举例要有一定的代表性,也要突出一些重点应用。

敏感性分析

敏感性分析(Sensitivity analysis)的大概含义如下:

敏感性分析有单因素敏感性分析和多因素敏感性分析两种。单因素敏感性分析是对单一不确定因素变化的影响进行分析,即假设各不确定性因素之间相互独立,每次只考察一个因素,其他因素保持不变,以分析这个可变因素对经济评价指标的影响程度和敏感程度。单因素敏感性分析是敏感性分析的基本方法。多因素敏感性分析是对两个或两个以上互相独立的不确定因素同时变化时,分析这些变化的因素对经济评价指标的影响程度和敏感程度。通常只要求进行单因素敏感性分析。

敏感性分析是最常见的一种模型检验方式,在评价模型中,常常对模型的权重进行检验,探索当模型权重发生变化时,打分或排序结果的变化。这里我们摘取2020A题特等奖论文11135中敏感性分析的部分作为例子:

Our result shows that our model can make most suitable suggestions to the student based on the weights of their preferences. We also want to know how sensitive our model is, i.e., the stability of our job recommendation system under changes in the parameters. In particular, we want to know how changing weights of factors can a↵ect final recommendation of jobs and by how much each factor can influence the rankings. To do this, we use our first model for Arthur and alter the weights of each factor while holding all other factors constant. From these results we can find the Absolute-Top (AT) factor, which is the factor that changes the top-ranked job with the smallest change in its weight. We decided to use AT as the most critical factor because we believe that students will pay more attention to the top-ranked job than any other job. Therefore, students will care about the AT the most compared to other factors.

Notice the black vertical line indicates the weight produced from AHP, and its intersection with other lines indicates the final scores for those jobs. Moving the line left or right creates di↵erent points of intersections that create di↵erent final scores. Looking at the graph, for any weight of wage rate (holding the ratio of other weights constant), tutor will be the job recommended to Arthur because of his preferences.

这里作者是进行了单因素的敏感性分析,选取了工资率(wage rate)作为研究因素,在保持其他因素权重不变的情况下,将工资率的权重从0增加到1,观察不同工作分值的变化,进而判断排序的变化。(不过这里要注意不同在横坐标工资率的权重发生变化时,纵坐标的分值不一定具有可比性,因为其他指标权重保持不变而只有工资率权重改变的的化,权重和不一定为1,论文主体模型选取的工资率权重为0.6左右,低于这个值的权重和小于1,高于这个值的权重和大于1)。分值大小影响不大,关键是看排序结果的变化,可以看出x在0.6周围变化时,排序结果是有变动的,得分最高的仍然是“tutor”,“lawn care”由第二名降为了第三名,“delivery driver”则由第三名上升至第二名。我们在这里解读变化结果时并不是从距离0.6也就是我们的理想值很远的地方开始解读的(比如0处)这是因为当权重发生如此大变化时,模型本身就已经发生很大变化了,我们比较关注的在之前选定值周围发生变化对结果的影响,否则就失去了之前求得这个理想值的意义了。所以,从结果上来看,第一名的推荐结果对权重的变化并不敏感,但“wage rate”的权重非常影响原先第二名以后的排序结果。

接下来作者又对其他因素权重变化进行了分析,这也让敏感性分析更为全面:

从上面的例子可以体会到敏感性分析的价值所在:它能告诉我们因素尤其时是核心因素的波动是否会对结果产生较大影响。如果结果对该因素变动变化较小,那我们可以放心接受现有结果;如果变化大,那么我们在该因素确定取值时就应格外慎重。

值得注意的是2020年A题特等奖论文5篇中4篇进行了敏感性分析,但这个环节实际上是保证模型完整性的一个重要环节,同学们要重视。

对比分析

对比分析往往是基于不同模型的,我们通过将几个模型(比如我们建立的模型与其他模型)结果进行对比,以体现模型的不同特点或者我们模型的优越性。不过由于建模比赛往往大家最终确定的模型只有一个,也不需要进行学术创新的对比,所以这类分析在建模中比较少见,但在学术论文中比较常见。

验证结果往往是建模论文中最薄弱的环节

为什么验证结果环节是建模论文中最薄弱的环节呢?从我个人教学经验来看可能归结于如下原因:

  1. 赛前学习或练习时没有意识到该环节是一个重要环节。大部分学习的精力放在了学习各类模型、练习编程能力等方面了,这些能力都只能保证“建”模型,但不能保证“验”模型;
  2. 缺乏对完整建模过程和论文写作的经验和体验。如果建模学习只停留在看看问题、想想思路、学习理论的阶段的话,那就没有经历完整的建模过程,也走不到验证模型这一步。
  3. 赛中时间大部分用来建模了,最后仓促结尾以至于没有该环节。 但不管是哪种原因,上述理由都可以视为新学者的“前车之鉴”,在自己学习建模过程中要着力避免。最后放上一张完整的数学建模流程图供大家参考: